package pkg

import (
	"hotel/appconfig"

	"time"

	"github.com/dgrijalva/jwt-go"
)

// TokenHandler是我们获取用户名和密码的处理程序，如果有效，则返回用于将来请求的令牌。
func TokenHandler(userid string) (string, error) {

	// 颁发一个有限期一小时的证书
	token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
		"userid": userid,
		"exp":    time.Now().Add(time.Hour * time.Duration(1)).Unix(),
		"iat":    time.Now().Unix(),
	})
	tokenString, err := token.SignedString([]byte(appconfig.Addconf.Jwt.APP_KEY))
	return tokenString, err

}

//
//func Token(tokenString string) (jwt.MapClaims, string) {
//
//	token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { return []byte(appconfig.Addconf.Jwt.APP_KEY), nil })
//
//	if token.Valid {
//		fmt.Println("You look nice today")
//	} else if ve, ok := err.(*jwt.ValidationError); ok {
//		if ve.Errors&jwt.ValidationErrorMalformed != 0 {
//			fmt.Println("That's not even a token")
//		} else if ve.Errors&(jwt.ValidationErrorExpired|jwt.ValidationErrorNotValidYet) != 0 {
//			fmt.Println("Timing is everything")
//		} else {
//			fmt.Println("Couldn't handle this token:", err)
//		}
//	} else {
//		fmt.Println("Couldn't handle this token:", err)
//	}
//
//	if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
//		fmt.Println(claims["foo"], claims["nbf"])
//		return claims, ""
//	} else {
//		fmt.Println(err)
//	}
//	return nil, ""
//}
